/*********************************************************************************************************************
 * COPYRIGHT NOTICE
 * Copyright (c) 2018,逐飞科技
 * All rights reserved.
 * 技术讨论QQ群：	一群：179029047(已满)
 *					二群：244861897(已满)
 *					三群：824575535
 *
 * 以下所有内容版权均属逐飞科技所有，未经允许不得用于商业用途，
 * 欢迎各位使用并传播本程序，修改内容时必须保留逐飞科技的版权声明。
 *
 * @file			seekfree_ft6336.h
 * @company			成都逐飞科技有限公司
 * @author			逐飞科技(QQ3184284598)
 * @version			查看doc内version文件 版本说明
 * @Software		IAR 8.3 or MDK 5.24
 * @Taobao			https://seekfree.taobao.com/
 * @date			2020-03-25
 * @note			本文件作为IOT开发板 seekfree_ft6336 传感器API
 ********************************************************************************************************************/
#ifndef _SEEKFREE_FT6336_H_
#define _SEEKFREE_FT6336_H_

#ifdef IOT_BOARD
#include "iot_arduino_iic.h"
#else
#include "zf_iic.h"
#endif

#define FT6336_SELF_RST						0				// 是否单独接复位信号		0-否 1-是

#define FT6336_TP_PRES_DOWN					0x80			// 触屏被按下
#define FT6336_TP_COORD_UD					0x40			// 触摸坐标更新标记

//I2C读写命令	
#define FT6336_FT_CMD_WR					0X70			// 写命令
#define FT6336_FT_CMD_RD					0X71			// 读命令
//#define FT6336_FT_CMD_WR					0X6C			// 写命令
//#define FT6336_FT_CMD_RD					0X6D			// 读命令

//FT6236 部分寄存器定义
#define FT6336_FT_DEVIDE_MODE				0x00			// FT6236模式控制寄存器
#define FT6336_FT_REG_NUM_FINGER			0x02			// 触摸状态寄存器

#define FT6336_FT_TP1_REG					0X03			// 第一个触摸点数据地址
#define FT6336_FT_TP2_REG					0X09			// 第二个触摸点数据地址
#define FT6336_FT_TP3_REG					0X0F			// 第三个触摸点数据地址
#define FT6336_FT_TP4_REG					0X15			// 第四个触摸点数据地址
#define FT6336_FT_TP5_REG					0X1B			// 第五个触摸点数据地址
 

#define	FT6336_FT_ID_G_LIB_VERSION			0xA1			// 版本
#define FT6336_FT_ID_G_MODE					0xA4			// FT6236中断模式控制寄存器
#define FT6336_FT_ID_G_THGROUP				0x80			// 触摸有效值设置寄存器
#define FT6336_FT_ID_G_PERIODACTIVE			0x88			// 激活状态周期设置寄存器
#define FT6336_CHIP_VENDOR_ID				0xA3			// 芯片ID(0x36)
#define FT6336_ID_G							0xA8			// 0x11

//触摸点相关数据结构体定义
typedef struct
{
	union
	{
		uint8_t all;
		struct
		{
			uint8_t point_1	:1;					// 触点 1 是否有效 0 无状态 1 有触摸
			uint8_t point_2	:1;					// 触点 1 是否有效 0 无状态 1 有触摸
			uint8_t point_3	:1;					// 触点 1 是否有效 0 无状态 1 有触摸
			uint8_t point_4	:1;					// 触点 1 是否有效 0 无状态 1 有触摸
			uint8_t point_5	:1;					// 触点 1 是否有效 0 无状态 1 有触摸
			uint8_t reserved:1;					// 保留
			uint8_t touch	:1;					// 是否有按键按下 0 松开 1 按下
			uint8_t hold	:1;					// 触摸状态 0松开 1 按压
		}bit;
	}touchsta;
	uint16_t x[5];								//支持5点触摸，需要使用5组坐标存储触摸点数据
	uint16_t y[5];
}ftf6336_touch_point_ref_t;

extern ftf6336_touch_point_ref_t ftf6336_tpr_structure;

#ifdef IOT_BOARD
void ft6336_init (void);
void ft6336_scan (void);
#else
void ft6336_init (flexcomm_index_list Index);
void ft6336_scan (flexcomm_index_list Index);
#endif


#endif
